home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / HyperXCmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  14.5 KB  |  632 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        HyperXCmd.h
  3.  
  4.      Contains:    Interfaces for HyperCard XCMD's
  5.  
  6.      Version:    Technology:    HyperCard 2.3
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1987-1999 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __HYPERXCMD__
  18. #define __HYPERXCMD__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __FP__
  25.     #include <fp.h>
  26. #endif
  27.  
  28. #ifndef __EVENTS__
  29.     #include <Events.h>
  30. #endif
  31.  
  32. #ifndef __TEXTEDIT__
  33.     #include <TextEdit.h>
  34. #endif
  35.  
  36. #ifndef __MENUS__
  37.     #include <Menus.h>
  38. #endif
  39.  
  40. #ifndef __STANDARDFILE__
  41.     #include <StandardFile.h>
  42. #endif
  43.  
  44.  
  45.  
  46.  
  47. #if PRAGMA_ONCE
  48. #pragma once
  49. #endif
  50.  
  51. #ifdef __cplusplus
  52. extern "C" {
  53. #endif
  54.  
  55. #if PRAGMA_IMPORT
  56. #pragma import on
  57. #endif
  58.  
  59. #if PRAGMA_STRUCT_ALIGN
  60.     #pragma options align=mac68k
  61. #elif PRAGMA_STRUCT_PACKPUSH
  62.     #pragma pack(push, 2)
  63. #elif PRAGMA_STRUCT_PACK
  64.     #pragma pack(2)
  65. #endif
  66.  
  67. /* result codes */
  68. enum {
  69.     xresSucc                    = 0,
  70.     xresFail                    = 1,
  71.     xresNotImp                    = 2
  72. };
  73.  
  74. /* XCMDBlock constants for event.what... */
  75. enum {
  76.     xOpenEvt                    = 1000,                            /* the first event after you are created */
  77.     xCloseEvt                    = 1001,                            /* your window is being forced close (Quit?) */
  78.     xGiveUpEditEvt                = 1002,                            /* you are losing Edit... */
  79.     xGiveUpSoundEvt                = 1003,                            /* you are losing the sound channel... */
  80.     xHidePalettesEvt            = 1004,                            /* someone called HideHCPalettes */
  81.     xShowPalettesEvt            = 1005,                            /* someone called ShowHCPalettes */
  82.     xEditUndo                    = 1100,                            /* Edit--Undo */
  83.     xEditCut                    = 1102,                            /* Edit--Cut */
  84.     xEditCopy                    = 1103,                            /* Edit--Copy */
  85.     xEditPaste                    = 1104,                            /* Edit--Paste */
  86.     xEditClear                    = 1105,                            /* Edit--Clear */
  87.     xSendEvt                    = 1200,                            /* script has sent you a message (text) */
  88.     xSetPropEvt                    = 1201,                            /* set a window property */
  89.     xGetPropEvt                    = 1202,                            /* get a window property */
  90.     xCursorWithin                = 1300,                            /* cursor is within the window */
  91.     xMenuEvt                    = 1400,                            /* user has selected an item in your menu */
  92.     xMBarClickedEvt                = 1401,                            /* a menu is about to be shown--update if needed */
  93.     xShowWatchInfoEvt            = 1501,                            /* for variable and message watchers */
  94.     xScriptErrorEvt                = 1502,                            /* place the insertion point */
  95.     xDebugErrorEvt                = 1503,                            /* user clicked "Debug" at a complaint */
  96.     xDebugStepEvt                = 1504,                            /* hilite the line */
  97.     xDebugTraceEvt                = 1505,                            /* same as step but tracing */
  98.     xDebugFinishedEvt            = 1506                            /* script ended */
  99. };
  100.  
  101. enum {
  102.     paletteProc                    = 2048,                            /* Windoid with grow box */
  103.     palNoGrowProc                = 2052,                            /* standard Windoid defproc */
  104.     palZoomProc                    = 2056,                            /* Windoid with zoom and grow */
  105.     palZoomNoGrow                = 2060                            /* Windoid with zoom and no grow */
  106. };
  107.  
  108. enum {
  109.     hasZoom                        = 8,
  110.     hasTallTBar                    = 2,
  111.     toggleHilite                = 1
  112. };
  113.  
  114. /* paramCount is set to these constants when first calling special XThings */
  115. enum {
  116.     xMessageWatcherID            = -2,
  117.     xVariableWatcherID            = -3,
  118.     xScriptEditorID                = -4,
  119.     xDebuggerID                    = -5
  120. };
  121.  
  122. /* XTalkObjectPtr->objectKind values */
  123. enum {
  124.     stackObj                    = 1,
  125.     bkgndObj                    = 2,
  126.     cardObj                        = 3,
  127.     fieldObj                    = 4,
  128.     buttonObj                    = 5
  129. };
  130.  
  131. /* selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) */
  132. enum {
  133.     errorDlgID                    = 1,                            /* 1:OK (default) */
  134.     confirmDlgID                = 2,                            /* 1:OK (default) and 2:Cancel */
  135.     confirmDelDlgID                = 3,                            /* 1:Cancel (default) and 2:Delete */
  136.     yesNoCancelDlgID            = 4                                /* 1:Yes (default), 2:Cancel, and 3:No */
  137. };
  138.  
  139.  
  140. /* type definitions */
  141.  
  142. struct XCmdBlock {
  143.     short                             paramCount;                    /* If = -1 then new use for XWindoids */
  144.     Handle                             params[16];
  145.     Handle                             returnValue;
  146.     Boolean                         passFlag;
  147.     SignedByte                         filler1;
  148.     UniversalProcPtr                 entryPoint;                    /* to call back to HyperCard */
  149.     short                             request;
  150.     short                             result;
  151.     long                             inArgs[8];
  152.     long                             outArgs[4];
  153. };
  154. typedef struct XCmdBlock                XCmdBlock;
  155.  
  156. typedef XCmdBlock *                        XCmdPtr;
  157.  
  158.  
  159. struct XWEventInfo {
  160.     EventRecord                     event;
  161.     WindowPtr                         eventWindow;
  162.     long                             eventParams[9];
  163.     Handle                             eventResult;
  164. };
  165. typedef struct XWEventInfo                XWEventInfo;
  166. typedef XWEventInfo *                    XWEventInfoPtr;
  167.  
  168. struct XTalkObject {
  169.     short                             objectKind;                    /* stack, bkgnd, card, field, or button */
  170.     long                             stackNum;                    /* reference number of the source stack */
  171.     long                             bkgndID;
  172.     long                             cardID;
  173.     long                             buttonID;
  174.     long                             fieldID;
  175. };
  176. typedef struct XTalkObject                XTalkObject;
  177. typedef XTalkObject *                    XTalkObjectPtr;
  178. /* maximum number of checkpoints in a script */
  179. enum {
  180.     maxCachedChecks                = 16
  181. };
  182.  
  183.  
  184. struct CheckPts {
  185.     short                             checks[16];
  186. };
  187. typedef struct CheckPts                    CheckPts;
  188.  
  189. typedef CheckPts *                        CheckPtPtr;
  190. typedef CheckPtPtr *                    CheckPtHandle;
  191. /*
  192.         HyperTalk Utilities  
  193. */
  194. EXTERN_API( Handle )
  195. EvalExpr                        (XCmdPtr                 paramPtr,
  196.                                  ConstStr255Param         expr);
  197.  
  198. EXTERN_API( void )
  199. SendCardMessage                    (XCmdPtr                 paramPtr,
  200.                                  ConstStr255Param         msg);
  201.  
  202. EXTERN_API( void )
  203. SendHCMessage                    (XCmdPtr                 paramPtr,
  204.                                  ConstStr255Param         msg);
  205.  
  206. EXTERN_API( void )
  207. RunHandler                        (XCmdPtr                 paramPtr,
  208.                                  Handle                 handler);
  209.  
  210.  
  211. /*
  212.         Memory Utilities  
  213. */
  214. EXTERN_API( Handle )
  215. GetGlobal                        (XCmdPtr                 paramPtr,
  216.                                  ConstStr255Param         globName);
  217.  
  218. EXTERN_API( void )
  219. SetGlobal                        (XCmdPtr                 paramPtr,
  220.                                  ConstStr255Param         globName,
  221.                                  Handle                 globValue);
  222.  
  223. EXTERN_API( void )
  224. ZeroBytes                        (XCmdPtr                 paramPtr,
  225.                                  void *                    dstPtr,
  226.                                  long                     longCount);
  227.  
  228.  
  229. /*
  230.         String Utilities  
  231. */
  232. EXTERN_API( void )
  233. ScanToReturn                    (XCmdPtr                 paramPtr,
  234.                                  Ptr *                    scanPtr);
  235.  
  236. EXTERN_API( void )
  237. ScanToZero                        (XCmdPtr                 paramPtr,
  238.                                  Ptr *                    scanPtr);
  239.  
  240. EXTERN_API( Boolean )
  241. StringEqual                        (XCmdPtr                 paramPtr,
  242.                                  ConstStr255Param         str1,
  243.                                  ConstStr255Param         str2);
  244.  
  245. EXTERN_API( long )
  246. StringLength                    (XCmdPtr                 paramPtr,
  247.                                  void *                    strPtr);
  248.  
  249. EXTERN_API( void *)
  250. StringMatch                        (XCmdPtr                 paramPtr,
  251.                                  ConstStr255Param         pattern,
  252.                                  void *                    target);
  253.  
  254. EXTERN_API( void )
  255. ZeroTermHandle                    (XCmdPtr                 paramPtr,
  256.                                  Handle                 hndl);
  257.  
  258.  
  259. /*
  260.         String Conversions  
  261. */
  262. EXTERN_API( void )
  263. BoolToStr                        (XCmdPtr                 paramPtr,
  264.                                  Boolean                 value,
  265.                                  Str255                 str);
  266.  
  267. EXTERN_API( void )
  268. Double_tToStr                    (XCmdPtr                 paramPtr,
  269.                                  double_t                 num,
  270.                                  Str255                 str);
  271.  
  272. EXTERN_API( void )
  273. LongToStr                        (XCmdPtr                 paramPtr,
  274.                                  long                     posNum,
  275.                                  Str255                 str);
  276.  
  277. EXTERN_API( void )
  278. NumToHex                        (XCmdPtr                 paramPtr,
  279.                                  long                     num,
  280.                                  short                     nDigits,
  281.                                  Str255                 str);
  282.  
  283. EXTERN_API( void )
  284. NumToStr                        (XCmdPtr                 paramPtr,
  285.                                  long                     num,
  286.                                  Str255                 str);
  287.  
  288. EXTERN_API( Handle )
  289. PasToZero                        (XCmdPtr                 paramPtr,
  290.                                  ConstStr255Param         str);
  291.  
  292. EXTERN_API( void )
  293. PointToStr                        (XCmdPtr                 paramPtr,
  294.                                  Point                     pt,
  295.                                  Str255                 str);
  296.  
  297. EXTERN_API( void )
  298. RectToStr                        (XCmdPtr                 paramPtr,
  299.                                  const Rect *            rct,
  300.                                  Str255                 str);
  301.  
  302. EXTERN_API( void )
  303. ReturnToPas                        (XCmdPtr                 paramPtr,
  304.                                  void *                    zeroStr,
  305.                                  Str255                 pasStr);
  306.  
  307. EXTERN_API( Boolean )
  308. StrToBool                        (XCmdPtr                 paramPtr,
  309.                                  ConstStr255Param         str);
  310.  
  311. EXTERN_API( double_t )
  312. StrToDouble_t                    (XCmdPtr                 paramPtr,
  313.                                  ConstStr255Param         str);
  314.  
  315. EXTERN_API( long )
  316. StrToLong                        (XCmdPtr                 paramPtr,
  317.                                  ConstStr255Param         str);
  318.  
  319. EXTERN_API( long )
  320. StrToNum                        (XCmdPtr                 paramPtr,
  321.                                  ConstStr255Param         str);
  322.  
  323. EXTERN_API( void )
  324. StrToPoint                        (XCmdPtr                 paramPtr,
  325.                                  ConstStr255Param         str,
  326.                                  Point *                pt);
  327.  
  328. EXTERN_API( void )
  329. StrToRect                        (XCmdPtr                 paramPtr,
  330.                                  ConstStr255Param         str,
  331.                                  Rect *                    rct);
  332.  
  333. EXTERN_API( void )
  334. ZeroToPas                        (XCmdPtr                 paramPtr,
  335.                                  void *                    zeroStr,
  336.                                  Str255                 pasStr);
  337.  
  338.  
  339. /*
  340.         Field Utilities  
  341. */
  342. EXTERN_API( Handle )
  343. GetFieldByID                    (XCmdPtr                 paramPtr,
  344.                                  Boolean                 cardFieldFlag,
  345.                                  short                     fieldID);
  346.  
  347. EXTERN_API( Handle )
  348. GetFieldByName                    (XCmdPtr                 paramPtr,
  349.                                  Boolean                 cardFieldFlag,
  350.                                  ConstStr255Param         fieldName);
  351.  
  352. EXTERN_API( Handle )
  353. GetFieldByNum                    (XCmdPtr                 paramPtr,
  354.                                  Boolean                 cardFieldFlag,
  355.                                  short                     fieldNum);
  356.  
  357. EXTERN_API( void )
  358. SetFieldByID                    (XCmdPtr                 paramPtr,
  359.                                  Boolean                 cardFieldFlag,
  360.                                  short                     fieldID,
  361.                                  Handle                 fieldVal);
  362.  
  363. EXTERN_API( void )
  364. SetFieldByName                    (XCmdPtr                 paramPtr,
  365.                                  Boolean                 cardFieldFlag,
  366.                                  ConstStr255Param         fieldName,
  367.                                  Handle                 fieldVal);
  368.  
  369. EXTERN_API( void )
  370. SetFieldByNum                    (XCmdPtr                 paramPtr,
  371.                                  Boolean                 cardFieldFlag,
  372.                                  short                     fieldNum,
  373.                                  Handle                 fieldVal);
  374.  
  375. EXTERN_API( TEHandle )
  376. GetFieldTE                        (XCmdPtr                 paramPtr,
  377.                                  Boolean                 cardFieldFlag,
  378.                                  short                     fieldID,
  379.                                  short                     fieldNum,
  380.                                  ConstStr255Param         fieldName);
  381.  
  382. EXTERN_API( void )
  383. SetFieldTE                        (XCmdPtr                 paramPtr,
  384.                                  Boolean                 cardFieldFlag,
  385.                                  short                     fieldID,
  386.                                  short                     fieldNum,
  387.                                  ConstStr255Param         fieldName,
  388.                                  TEHandle                 fieldTE);
  389.  
  390.  
  391. /*
  392.         Miscellaneous Utilities  
  393. */
  394. EXTERN_API( void )
  395. BeginXSound                        (XCmdPtr                 paramPtr,
  396.                                  WindowPtr                 window);
  397.  
  398. EXTERN_API( void )
  399. EndXSound                        (XCmdPtr                 paramPtr);
  400.  
  401. EXTERN_API( Boolean )
  402. GetFilePath                        (XCmdPtr                 paramPtr,
  403.                                  ConstStr255Param         fileName,
  404.                                  short                     numTypes,
  405.                                  ConstSFTypeListPtr     typeList,
  406.                                  Boolean                 askUser,
  407.                                  OSType *                fileType,
  408.                                  Str255                 fullName);
  409.  
  410. EXTERN_API( void )
  411. GetXResInfo                        (XCmdPtr                 paramPtr,
  412.                                  short *                resFile,
  413.                                  short *                resID,
  414.                                  ResType *                rType,
  415.                                  Str255                 name);
  416.  
  417. EXTERN_API( void )
  418. Notify                            (XCmdPtr                 paramPtr);
  419.  
  420. EXTERN_API( void )
  421. SendHCEvent                        (XCmdPtr                 paramPtr,
  422.                                  const EventRecord *    event);
  423.  
  424. EXTERN_API( void )
  425. SendWindowMessage                (XCmdPtr                 paramPtr,
  426.                                  WindowPtr                 windPtr,
  427.                                  ConstStr255Param         windowName,
  428.                                  ConstStr255Param         msg);
  429.  
  430. EXTERN_API( WindowPtr )
  431. FrontDocWindow                    (XCmdPtr                 paramPtr);
  432.  
  433. EXTERN_API( long )
  434. StackNameToNum                    (XCmdPtr                 paramPtr,
  435.                                  ConstStr255Param         stackName);
  436.  
  437. EXTERN_API( short )
  438. ShowHCAlert                        (XCmdPtr                 paramPtr,
  439.                                  short                     dlgID,
  440.                                  ConstStr255Param         promptStr);
  441.  
  442. EXTERN_API( Boolean )
  443. AbortInQueue                    (XCmdPtr                 paramPtr);
  444.  
  445. EXTERN_API( void )
  446. FlushStackFile                    (XCmdPtr                 paramPtr);
  447.  
  448.  
  449. /*
  450.         Creating and Disposing XWindoids  
  451. */
  452. EXTERN_API( WindowPtr )
  453. NewXWindow                        (XCmdPtr                 paramPtr,
  454.                                  const Rect *            boundsRect,
  455.                                  ConstStr255Param         title,
  456.                                  Boolean                 visible,
  457.                                  short                     procID,
  458.                                  Boolean                 color,
  459.                                  Boolean                 floating);
  460.  
  461. EXTERN_API( WindowPtr )
  462. GetNewXWindow                    (XCmdPtr                 paramPtr,
  463.                                  ResType                 templateType,
  464.                                  short                     templateID,
  465.                                  Boolean                 color,
  466.                                  Boolean                 floating);
  467.  
  468. EXTERN_API( void )
  469. CloseXWindow                    (XCmdPtr                 paramPtr,
  470.                                  WindowPtr                 window);
  471.  
  472. /*
  473.         XWindoid Utilities  
  474. */
  475. EXTERN_API( void )
  476. HideHCPalettes                    (XCmdPtr                 paramPtr);
  477.  
  478. EXTERN_API( void )
  479. ShowHCPalettes                    (XCmdPtr                 paramPtr);
  480.  
  481. EXTERN_API( void )
  482. RegisterXWMenu                    (XCmdPtr                 paramPtr,
  483.                                  WindowPtr                 window,
  484.                                  MenuHandle             menu,
  485.                                  Boolean                 registering);
  486.  
  487. EXTERN_API( void )
  488. SetXWIdleTime                    (XCmdPtr                 paramPtr,
  489.                                  WindowPtr                 window,
  490.                                  long                     interval);
  491.  
  492. EXTERN_API( void )
  493. XWHasInterruptCode                (XCmdPtr                 paramPtr,
  494.                                  WindowPtr                 window,
  495.                                  Boolean                 haveCode);
  496.  
  497. EXTERN_API( void )
  498. XWAlwaysMoveHigh                (XCmdPtr                 paramPtr,
  499.                                  WindowPtr                 window,
  500.                                  Boolean                 moveHigh);
  501.  
  502. EXTERN_API( void )
  503. XWAllowReEntrancy                (XCmdPtr                 paramPtr,
  504.                                  WindowPtr                 window,
  505.                                  Boolean                 allowSysEvts,
  506.                                  Boolean                 allowHCEvts);
  507.  
  508.  
  509. /*
  510.         Text Editing Utilities  
  511. */
  512. EXTERN_API( void )
  513. BeginXWEdit                        (XCmdPtr                 paramPtr,
  514.                                  WindowPtr                 window);
  515.  
  516. EXTERN_API( void )
  517. EndXWEdit                        (XCmdPtr                 paramPtr,
  518.                                  WindowPtr                 window);
  519.  
  520. EXTERN_API( WordBreakUPP )
  521. HCWordBreakProc                    (XCmdPtr                 paramPtr);
  522.  
  523. EXTERN_API( void )
  524. PrintTEHandle                    (XCmdPtr                 paramPtr,
  525.                                  TEHandle                 hTE,
  526.                                  StringPtr                 header);
  527.  
  528.  
  529. /*
  530.         Script Editor support  
  531. */
  532. EXTERN_API( CheckPtHandle )
  533. GetCheckPoints                    (XCmdPtr                 paramPtr);
  534.  
  535. EXTERN_API( void )
  536. SetCheckPoints                    (XCmdPtr                 paramPtr,
  537.                                  CheckPtHandle             checkLines);
  538.  
  539. EXTERN_API( void )
  540. FormatScript                    (XCmdPtr                 paramPtr,
  541.                                  Handle                 scriptHndl,
  542.                                  long *                    insertionPoint,
  543.                                  Boolean                 quickFormat);
  544.  
  545. EXTERN_API( void )
  546. SaveXWScript                    (XCmdPtr                 paramPtr,
  547.                                  Handle                 scriptHndl);
  548.  
  549. EXTERN_API( void )
  550. GetObjectName                    (XCmdPtr                 paramPtr,
  551.                                  XTalkObjectPtr         xObjPtr,
  552.                                  Str255                 objName);
  553.  
  554. EXTERN_API( void )
  555. GetObjectScript                    (XCmdPtr                 paramPtr,
  556.                                  XTalkObjectPtr         xObjPtr,
  557.                                  Handle *                scriptHndl);
  558.  
  559. EXTERN_API( void )
  560. SetObjectScript                    (XCmdPtr                 paramPtr,
  561.                                  XTalkObjectPtr         xObjPtr,
  562.                                  Handle                 scriptHndl);
  563.  
  564.  
  565. /*
  566.         Debugging Tools support  
  567. */
  568. EXTERN_API( void )
  569. AbortScript                        (XCmdPtr                 paramPtr);
  570.  
  571. EXTERN_API( void )
  572. GoScript                        (XCmdPtr                 paramPtr);
  573.  
  574. EXTERN_API( void )
  575. StepScript                        (XCmdPtr                 paramPtr,
  576.                                  Boolean                 stepInto);
  577.  
  578. EXTERN_API( void )
  579. CountHandlers                    (XCmdPtr                 paramPtr,
  580.                                  short *                handlerCount);
  581.  
  582. EXTERN_API( void )
  583. GetHandlerInfo                    (XCmdPtr                 paramPtr,
  584.                                  short                     handlerNum,
  585.                                  Str255                 handlerName,
  586.                                  Str255                 objectName,
  587.                                  short *                varCount);
  588.  
  589. EXTERN_API( void )
  590. GetVarInfo                        (XCmdPtr                 paramPtr,
  591.                                  short                     handlerNum,
  592.                                  short                     varNum,
  593.                                  Str255                 varName,
  594.                                  Boolean *                isGlobal,
  595.                                  Str255                 varValue,
  596.                                  Handle                 varHndl);
  597.  
  598. EXTERN_API( void )
  599. SetVarValue                        (XCmdPtr                 paramPtr,
  600.                                  short                     handlerNum,
  601.                                  short                     varNum,
  602.                                  Handle                 varHndl);
  603.  
  604. EXTERN_API( Handle )
  605. GetStackCrawl                    (XCmdPtr                 paramPtr);
  606.  
  607. EXTERN_API( void )
  608. TraceScript                        (XCmdPtr                 paramPtr,
  609.                                  Boolean                 traceInto);
  610.  
  611.  
  612. #if PRAGMA_STRUCT_ALIGN
  613.     #pragma options align=reset
  614. #elif PRAGMA_STRUCT_PACKPUSH
  615.     #pragma pack(pop)
  616. #elif PRAGMA_STRUCT_PACK
  617.     #pragma pack()
  618. #endif
  619.  
  620. #ifdef PRAGMA_IMPORT_OFF
  621. #pragma import off
  622. #elif PRAGMA_IMPORT
  623. #pragma import reset
  624. #endif
  625.  
  626. #ifdef __cplusplus
  627. }
  628. #endif
  629.  
  630. #endif /* __HYPERXCMD__ */
  631.  
  632.